'use strict';
/**
 * 在JSON中，一共就6种数据类型：
 *      1,number：和JavaScript的number完全一致；
 *      2,boolean：就是JavaScript的true或false；
 *      3,string：就是JavaScript的string；
 *      4,null：就是JavaScript的null；
 *      5,array：就是JavaScript的Array表示方式——[]；
 *      6,object：就是JavaScript的{ ... }表示方式。
 * 
 * 注意事项：
 *      a:JSON字符集必须是utf-8
 *      b:JSON的字符串规定必须用双引号""，Object的键也必须用双引号""
 */
//1,声明一个对象并输出json的字符串形式
var oJson= {
    name:"张三",
    age:18,
    gender:true,
    skills:["javascript",'java',"python"]
}

var str = JSON.stringify(oJson);
console.log(str);//{"name":"张三","age":18,"gender":true,"skills":["javascript","java","python"]}

//2,json对象格式化输出
var formatStr = JSON.stringify(oJson,null,' ');//格式化输出必须有个空格
console.log(formatStr);

//3,只输出指定的属性
var setPro = JSON.stringify(oJson,['name','skills'],' ');//可以传入一个数组/函数
console.log(setPro);

//4,传入一个函数，json对象的键值会被函数先处理
function convert(key,value) {
    if(typeof value === 'string'){
        return value.toUpperCase;
    }
    return value;
}
console.log(JSON.stringify(oJson,convert,' '));


var convertStr = convert('lisi','789');
console.log(convertStr);

//字符串转json
console.log(new Function('return'+'{"updatedTime":1591154945857,"updatedBy":"admin","menuId":126,"menuName":"a卡人行征信变量","id":90,"tableDesc":"lixueping666","remarks":"","script":"","status":1,"tableName":"egergergregre"}'));